// import arr from './base'
const fs = require('fs')
// 定义一个读取文件函数
function readFile(path){
    return new Promise((resolve,reject)=>{
        fs.readFile(path,'utf-8',(err,data)=>{
            if(err) throw reject(err)
               resolve(data)
        })

    })
} 

// 定义一个异步执行空间
async function exec(arr){
   const res1 = await readFile('./1.txt')
    // 谁先写，谁后写都无所谓
       fs.mkdir('modules',(err)=>{
            if(err) console.log(err);
            // 开始遍历
            console.log(arr);
       arr.forEach(item=>{
        //    这里好像可以使用path模块优化，但是我现在还是先把他写出来在说，工具没有谁说一个小时就开发完整的
           fs.mkdir('modules/'+item.path,err=>{
               let context =  res1.replace(/~A~/gm,item.$A$).replace(/~B~/gm,item.$B$).replace(/~C~/gm,item.$C$)
            fs.writeFile(`modules/`+item.path+'/'+item.fileName,context,(err)=>{
                if(err) throw console.error('写入文件出错了');
            })
           })
       })      
    })

}
// 这是一段不合格的代码，没事，后期再改
// const arr = ['departments','approvals','attendances','empoyees','permisssions','salarys','settings','social_securitys']
// exec(arr)
// 一口气生成了views文件库 这只是最基本的操作。如何将其封装成一个真正好用的库，才是我考虑的
// 导入乱码  那就读取
fs.readFile('./base.js','utf-8',(err,data)=>{
//   const str=  data.replace(/^\[|\]$/gm,'').trim().split(',')
    const arr = eval(data)
    // console.log(arr);
    exec(arr)


})